﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.SqlClient;
using System.Data;
using System.Text;
using DAL;
using System.Transactions;
using UtilityExtensions;

namespace BOL.Banco
{
    public  class CuentaBancoBL
    {
        public int Add(int idEmpresa,string	descripcion,
                    int	idMoneda,
                    int	idBanco)
        {
            using (TransactionScope ts = new TransactionScope())
            {

                dbGestionDataContext _db =
                    new dbGestionDataContext(Parametros.strConnString);

                //datos de la empresa y empleado
                int idUsuarioCre = int.Parse(System.Web.HttpContext.Current.Session["idEmpleado"].ToString());
                

                DAL.CuentaBanco db = new DAL.CuentaBanco();

                db.SetAdd(_db,
                        descripcion,
                        idMoneda,
                        idBanco,
                        idEmpresa,
                        idUsuarioCre);

                _db.CuentaBancos.InsertOnSubmit(db);
                //registramos
                _db.SubmitChanges();
               
                ts.Complete();
                return db.idInternal;

            }

        }


        public void Update(int idEmpresa,int idCuentaBanco,
                            string	descripcion,
                            int	idMoneda,
                            int	idBanco)
        {
            using (TransactionScope ts = new TransactionScope())
            {

                dbGestionDataContext _db =
                    new dbGestionDataContext(Parametros.strConnString);

                //datos de la empresa y empleado
                int idUsuarioCre = int.Parse(System.Web.HttpContext.Current.Session["idEmpleado"].ToString());
                

                var db = _db.CuentaBancos.Single(p => p.idInternal == idCuentaBanco);

                db.SetUpdate(_db,
                    descripcion,
                    idMoneda,
                    idBanco,
                    idUsuarioCre);
                //registramos las UI
                _db.SubmitChanges();
               

                _db.SubmitChanges();
                ts.Complete();

            }

        }


        public void Delete(int idCuentaBanco)
        {
            using (TransactionScope ts = new TransactionScope())
            {

                dbGestionDataContext _db =
                    new dbGestionDataContext(Parametros.strConnString);

                //datos de la empresa y empleado
                int idUsuarioCre = int.Parse(System.Web.HttpContext.Current.Session["idEmpleado"].ToString());
                

                var db = _db.CuentaBancos.Single(p => p.idInternal == idCuentaBanco);

                _db.CuentaBancos.DeleteOnSubmit(db);


                _db.SubmitChanges();
                ts.Complete();

            }
        }
    }
}
